#include <stdlib.h> требуется только для объявления функции onexit_t onexit(func); тип onexit_t, определенный в <stdlib.h> onexit_t func;
Описание.
Функция onexit передает адрес функции (func ), которая будет выполнена, если программа нормально завершится. Успешные вызовы onexit создают набор функций, выполняемый по правилу магазина "последний зашел, первый вышел". При помощи onexit могут быть созданы наборы не более чем из 32 функций; onexit возвращает значение NULL , если число функций в наборе превышает 32. Функции, передаваемые к onexit , не могут иметь параметров.
Возвращаемое значение.
Функция onexit в случае успеха возвращает указатель на функцию и возвращает NULL , если не осталось места для хранения указателя на функцию.
Пример:
#include <stdlib.h> main() { int fn1(), fn2(), fn3(), fn4(); onexit(fn1); onexit(fn2); onexit(fn3); onexit(fn4); printf("This is executed first.\n"); } int fn1() { printf("next.\n"); } int fn2() { printf("executed"); } int fn3() { printf("is"); } int fn4() { printf("This"); }
На выходе:
This is executed first. This is executed next.